//===========================================================
//					xv_obj
//
//	Объектная система
//===========================================================

#include "xv_obj.h"
#include "xv_map.h"

// Указатель на игрока
cCreature *Player;

//--------------------------------- cObject ---------------------------------
// Установка позиции
void cObject::SetPos(int nx, int ny)
{
	x = nx;
	y = ny;
}
// Установка спрайта
void cObject::SetSprite(string nsprite)
{
	sprite = nsprite;
}
// Установка позиции спрайта на текстуре
void cObject::SetPos1(int nx1, int ny1)
{
	x1 = nx1;
	y1 = ny1;
}
// Установка размеров
void cObject::SetSize(int nw, int nh)
{
	w = nw;
	h = nh;
}
// Получение координаты X
int cObject::getX()
{
	return x;
}
// Получение координаты Y
int cObject::getY()
{
	return y;
}
// Получение спрайта
string cObject::getSprite()
{
	return sprite;
}
// Получение координаты X1
int cObject::getX1()
{
	return x1;
}
// Получение координаты Y1
int cObject::getY1()
{
	return y1;
}
// Получение ширины
int cObject::getWidth()
{
	return w;
}
// Получение высоты
int cObject::getHeight()
{
	return h;
}

//--------------------------------- cTile ---------------------------------
// Установка проходимости
void cTile::SetPassable(bool bnPassable)
{
	bPassable = bnPassable;
}
// Проходим ли тайл?
bool cTile::isPassable()
{
	return bPassable;
}

//--------------------------------- cCreature ---------------------------------
// Установка имени
void cCreature::SetName(string nname)
{
	name = nname;
}
// Установка скорости
void cCreature::SetSpeed(float nspeed)
{
	speed = nspeed;
}
// Получение имени
string cCreature::getName()
{
	return name;
}
float cCreature::getSpeed()
{
	return speed;
}

// Движение существа
void cCreature::Move(int nx, int ny)
{
	// Учитываем скорость существа
	nx *= getSpeed();
	ny *= getSpeed();

	// Поворачиваем спрайт в сторону движения
	if ( getX() > getX() + nx )
	{
		SetPos1(0, 0);
	}
	else
	{
		SetPos1(0, 64);
	}

	// TODO: Проверка столкновений, 
	SetPos(getX()+nx, getY()+ny);
}